package nige.volum.core;

import java.util.Vector;

/**
 * Classe coeur du projet
 * @author Nicolas Genevaux
 *
 */
public class Governance extends Thread {
	/**
	 * Log courante
	 */
	private String log = "";
	/**
	 * Dossier qui contient le code source a scanner
	 */
	private String dossier = "";
	/**
	 * Description des differents langage 
	 * (volumetries)
	 */
	private Vector<Langage> langages = null;
	/**
	 * Dossier avec les langages
	 */
	private String dirlangage = "";
	/**
	 * Constructeur de la classe
	 * @param folder Dossier a scanner
	 * @param resultExtensionT Vecteur des 
	 * resultats du scan (extension)
	 * @param resultLangageT Vecteur des 
	 * resultats du scan (langage)
	 * @param dirlan Repertoire avec les 
	 * descriptions de langage
	 */
	public Governance(String folder, 
			String dirlan) {
		dossier = folder;
		dirlangage = dirlan;
		ScanFile.FOLDERTOSCAN = folder;
	}
	
	/**
	 * Debut du thread de la classe
	 * Scan le dossier et boucle jusqu'a 
	 * ce que ce soit fini
	 */
	public void run() {
		langages = (new RecupLangages(dirlangage)).recuperer();
		ScanFile.fichierTotalScanne = 0;
		log = "GETYOURS";
		// Verifie qu'il n'y est pas trop de thread lance
		// Increment du thread
		// Lancement du scan de dossier
		ScanFolder sf = new ScanFolder();
		sf.scan(dossier,langages);
		// Nombre sert a comparer avec
		// Ce qui est deja scanne
		// Comparaison pour connaitre quand c'est fini
		// (on considere que c'est termine quand
		// le nombre de fichiers scannes n'evolue plus)
		// Fin
	}
	/**
	 * Renvoie la log
	 * @return La log
	 */
	public String getLog() {
		return log;
	}
	/**
	 * Positionne la log
	 * @param log La log
	 */
	public void setLog(String log) {
		this.log = log;
	}
	
}
